/**
 * 使用动态规划方法计算特定位置的斐波那契数。
 *
 * @param {number} n - 需要计算的斐波那契数的位置
 * @return {number} - 返回第n个斐波那契数
 */

export default function fibonacciNth(n) {
  let currentValue = 1;
  let previousValue = 0;

  if (n === 1) {
    return 1;
  }

  let iterationsCounter = n - 1;

  // 迭代计算直到达到指定位置
  while (iterationsCounter) {
    currentValue += previousValue;
    previousValue = currentValue - previousValue;

    iterationsCounter -= 1;
  }

  return currentValue;
}
